# -*-Tcl-*- (nolinebreak)
# Cache v1.3 created on 2026-10-14 14:39:08
set preinit(filesetIndentationPreference) {0.2.1 {
    # Attach three preferences to each fileset
    fileset::attachNewInformation "" variable "Indentation Amount" ""  "If you enter anything here, it is used as the default indentation size for any files opened which are in this fileset.  The default may be overridden by other considerations."
    fileset::attachNewInformation "" variable "Tab Size" ""  "If you enter anything here, it is used as the default tab size for any files opened which are in this fileset.  The default may be overridden by other considerations."
    fileset::attachNewInformation "" flag "Indent Using Spaces Only" 0  "If you set this, you may override the global indentation preference for files which are in this fileset. The default may be overridden by other considerations."
    hook::register fileset-file-opening fileset::checkIndentationPreference
}}
set preinit(openDocument) {1.5 {
    # Contextual Menu module.  Doesn't require this package to be formally
    # turned on by the user.
    # Includes all "Open Document" items registered by other AlphaTcl 
    # packages
	openDocument::createSubmenu "Open"
    namespace eval openDocument {
		variable menuToken
		variable cmToken
		set cmToken [contextualMenu::declare submenu "openDocument" "" 0 "" $menuToken(open)]
	}
    # Place this item in the first section.
    contextualMenu::addToSection 1 submenu "openDocument"
}}
set preinit(InSh) {1.4 {
    # Preinit script
    alpha::internalModes "InSh"
    set "::index::consoles(Unix Shell)" unixShell
}}
set preinit(vcBazaar) {0.1 {
    hook::register vcsSupportPackages {vcs::bazaarSupport}
    vcs::register Bazaar
    ;proc vcs::bazaarSupport {args} {
		hook::register preOpeningHook bazaar::preOpeningHook
		hook::register activateHook bazaar::activateHook
		hook::register closeHook bazaar::properClose bazaar
    }
	# Create a "minor mode" for the windows under bazaar control
	alpha::minormode "bazaar" +bindtags "bazaar" +hookmodes "bazaar" +featuremodes "bazaar"
}}
set preinit(spellingAlpha) {0.1 {
	spell::register "Alpha" alphaspell
}}
set preinit(docPopups) {2.0 {
    # Preinit script
    docpop::initializePackage
}}
set preinit(helpMenu) {9.2.4 {
    # Preinit script
    help::initializePackage
}}
set preinit(identities) {0.6 {
    userInfo::initializePackage
}}
set preinit(htmlViewers) {1.0 {}}
set preinit(calculator) {1.1.1 {
    # Inserts a "Calculator" menu item that allows you to perform 
    # calculations from within «ALPHA»
    contextualMenu::declare item "calculator" Calc::calculatorWindow 0
    namespace eval contextualMenu {
	;proc calculator {} {::calculator}
    }
}}
set preinit(vfsFileset) {0.3.7 {
    # Strictly speaking we don't quite use the same format as 'fromHierarchy'
    # filesets, but it's similar enough that it will mostly work, and save a
    # lot of coding here.
    # 
    # We'll eventually write the proper fileset type, which will avoid the
    # few glitches with current approach (e.g. a saved fileset won't work on
    # restart unless it is rebuilt because the vfs hasn't been mounted).
    fileset::registerNewType vfs "fromHierarchy"
}}
set preinit(macros) {2.3 {}}
set preinit(vcMercurial) {0.1 {
    hook::register vcsSupportPackages {vcs::mercurialSupport}
    vcs::register Mercurial
    ;proc vcs::mercurialSupport {args} {
		hook::register preOpeningHook mercurial::preOpeningHook
		hook::register activateHook mercurial::activateHook
		hook::register closeHook mercurial::properClose mercurial
    }
	# Create a "minor mode" for the windows under mercurial control
	alpha::minormode "mercurial" +bindtags "mercurial" +hookmodes "mercurial" +featuremodes "mercurial"
}}
set preinit(marks) {1.1 {
	# Initialization script.
	marks::initializePackage
}}
set preinit(compare) {0.3 {
	# Ignore changes in case; consider upper- and lowercase letters equivalent.
    newPref flag ignoreCase 0 compare
    # Ignore changes that just insert or delete blank lines.
    newPref flag ignoreBlankLines 0 compare
    # Ignore changes in amount of white space.
    newPref flag ignoreSpaceChanges 0 compare
    # Ignore all white space when comparing lines.
    newPref flag ignoreWhiteSpace 0 compare
	# Ignore changes due to tab expansion.
    newPref flag ignoreTabExpansion 0 compare
	# When comparing folders, recursively compare all subfolders found.
    newPref flag compareFoldersRecursively 0 compare
    # Treat all files as text and compare them line-by-line, even if they 
    # appear to be binary.
    newPref flag treatAllFilesAsText 0 compare

	set token [menuRef create -title "Compare"] 
	set ::menu::core(Compare) $token
	menuItem insert $::menu::core(Tools) 0 "Compare" -submenu $token
	menuItem append $token "Windows" -dynamic 1 -command compare::windows
	menuItem append $token "Windows Word By Word" -alternate 1 -modifiers "o" -command compare::windowsWordByWord
	menuItem append $token "Selections" -dynamic 1 -command compare::selections
	menuItem append $token "Selections Word By Word" -alternate 1 -modifiers "o" -command compare::selectionsWordByWord
	menuItem append $token "Files…" -command compare::files
	menuItem append $token "Folders…" -command compare::folders
	menuItem append $token "-"
	menuItem append $token "Comparison Options…" -command compare::diffOptions
	menuItem append $token "Diff Prefs…" -command compare::diffPrefs
	menuItem append $token "Compare Help" -command compare::help

	foreach item [list "Windows" "Windows Word By Word" "Selections" "Selections Word By Word"] {
		hook::register dimThreshold [list $token $item] 2
	} 
}}
set preinit(vcMonotone) {0.1 {
    hook::register vcsSupportPackages {vcs::monotoneSupport}
    vcs::register Monotone
    ;proc vcs::monotoneSupport {args} {
		hook::register preOpeningHook monotone::preOpeningHook
		hook::register activateHook monotone::activateHook
		hook::register closeHook monotone::properClose monotone
    }
	# Create a "minor mode" for the windows under monotone control
	alpha::minormode "monotone" +bindtags "monotone" +hookmodes "monotone" +featuremodes "monotone"
}}
set preinit(appPaths) {1.0 {
    # Preinit script: source this file so that all services defined by
    # this package will be properly registered.  (We could define all of
    # these here in this script if we wanted to avoid sourcing this file.)
    appPaths.tcl
}}
set preinit(newDocument) {1.3 {
    # Contextual Menu module.  Doesn't require this package to be formally
    # turned on by the user.
    
    # Includes all of the options provided by the "File > New Document" menu,
    # i.e. those new document options defined by other AlphaTcl packages to 
    # create new windows with specific templates
    set cmToken [contextualMenu::declare submenu "newDocument" newDocument::menuProc 0]
	menuRef set $cmToken -updateProc newDocument::updateCM
	# Place this item in the first section
    contextualMenu::addToSection 1 submenu "newDocument"
}}
set preinit(error) {1.2 {}}
set preinit(filesetRemoteMirror) {0.4.0 {
    # Add the preferences as a group to filesets which want them
    fileset::attachNewInformationGroup "Fileset Remote Mirror" ""  "Allows you to mirror a given fileset onto a remote site"  [list url "Remote location" "" "Server to upload files to."]
    
    set "filesetUtils(Update Fileset Mirror…)" [list * fileset::updateRemoteMirror]
}}
set preinit(colorsMenu) {1.4 {
    # Includes items to create hyperlinks (i.e. for urls and e-mails) in the
    # active window
    set cmToken [contextualMenu::declare submenu "createHyperlink" colors::colorsMenuProc 0]
	menuRef set $cmToken -updateProc colors::updateHyperlinkCM
    # Includes items to colorize text strings in the active window
    set cmToken [contextualMenu::declare submenu "colorStyleText" colors::colorsMenuProc 0]
	menuRef set $cmToken -updateProc colors::updateColorStyleCM
	unset cmToken
	hook::register contextualPostBuildHook {colors::postBuildColorStyleCM}
}}
set preinit(ftpMenu) {1.3 {
    fileset::registerNewType ftp "list"
}}
set preinit(mailerAlpha) {2.1.1 {
    namespace eval Mail {
	variable handlers
	set handlers($::alpha::application) "Mail::alpha"
	if {[info exists ::MailmodeVars(mailHandler)]  && ($::MailmodeVars(mailHandler) eq $::alpha::application)} {
	    array set ::newDocTypes [list  "New E-mail Inbox" {Mail::alpha::newInbox}]
	}
    }
}}
set preinit(filesetFtpMirror) {0.3.1 {
    # Add the preferences as a group to filesets which want them
    fileset::attachNewInformationGroup "Fileset Ftp Mirror" ""  "Allows you to mirror a given fileset onto an ftp site"  [list variable "Ftp server" "" "Server to upload files to."]  [list variable "User ID" "" "User name with access to above server."]  [list password "Password" "" "Password for above user name."]  [list variable "Directory" "" "Directory on the server."]
   
   set "filesetUtils(Update Fileset Ftp Mirror…)" [list * fileset::updateFtpMirror]
}}
set preinit(shells) {0.2 {
    namespace eval Shel {
		variable startPrompt "«"
		variable endPrompt   "»"
    }
	alpha::minormode shell +bindtags Shel +hookmodes Shel +varmodes Shel
}}
set preinit(latexMacrosCycle) {1.2 {
    # Contextual menu for TeX mode. Includes items that are related to the
    # current LaTeX command, allowing you to replace the current command
	set cmToken [contextualMenu::declare submenu "relatedTexCommands" TeX::relatedCMProc 1 TeX]
	menuRef set $cmToken -updateProc TeX::updateRelatedCM
	
    # Same as before but for Bib mode.
	set cmToken [contextualMenu::declare submenu "relatedTexCommands" TeX::relatedCMProc 0 Bib]
	menuRef set $cmToken -updateProc TeX::updateRelatedCM
	unset cmToken
}}
set preinit(terminal) {1.5.2 {
   if {([lsearch [package names] "terminal"] == "-1")} then {
      package ifneeded terminal 1.5 {terminal::cleanup}
      # status::msg "Had to supply \[package ifneeded\] script for #   terminal package."
   }
   # The default maximal line width (in characters). Programs
   # using the terminal are allowed to override this value.
   newPref int maxPrintLine 79 terminal terminal::do_max_print_line
   # The default geometry (bounding rectangle) of the terminal
   # window.
   newPref geometry windowGeometry "" terminal ; #terminal::do_window
   proc TermmodifyFlags {} {prefs::dialogs::packagePrefs terminal}
}}
set preinit(pdfViewers) {1.0 {}}
set preinit(mailMenu) {2.2 {
    # Additional global option for handling e-mail urls and such.
    array set eMailer [list "Mail Menu" {Mail::newEmailWindow}]
    # Insert a new option in the 'New Document' prompt.
    array set newDocTypes [list "New E-mail Message" {Mail::createEmailWindow}]
    # Not sure how to handle this anymore.
    #set unixMode(rmail) {Mail}
}}
set preinit(spellingAspell) {0.1 {
	spell::register "Aspell" aspell
	hook::register closeHook aspell::cleanDataForWin
}}
set preinit(mailerDefault) {2.1.1 {
    namespace eval Mail {
	variable handlers
	set "handlers(Default Mailer)" "Mail::default"
    }
}}
set preinit(wwwServices) {1.0 {
    # Preinit script: source this file so that all Internet Services
    # will be properly registered.
    wwwServices.tcl
}}
set preinit(mailerEudora) {2.1.1 {
    namespace eval Mail {
	variable handlers
	set handlers(Eudora) "Mail::eudora"
    }
}}
set preinit(licenseTemplates) {0.4 {
    license::initializePackage
}}
set preinit(laTeXMenu) {{for TeX mode} {
    # Transfer any "texMenu" strings to "laTeXMenu" in user preferences.
    if {[info exists global::features]  && ([set idx [lsearch $global::features "texMenu"]] > -1)} {
	set global::features  [lreplace $global::features $idx $idx "laTeXMenu"]
	prefs::modified global::features
    }
    foreach m [array names mode::features] {
	if {([set idx [lsearch $mode::features($m) "texMenu"]] > -1)} {
	    set mode::features($m)  [lreplace $mode::features($m) $idx $idx "laTeXMenu"]
	    prefs::modified mode::features($m)
	}
    }
    unset -nocomplain idx m
}}
set preinit(vcCvs) {0.4.1 {
    hook::register vcsSupportPackages {vcs::cvsSupport}
    vcs::register Cvs 
	;proc vcs::cvsSupport {args} {
		# Any flags you wish to pass the CVS application, which are
		# valid for any cvs action.
		newPref var cvsGlobalFlags "" vcs
	}
}}
set preinit(countryFlags) {1.0 {
    # Preinit script
}}
set preinit(fileCompression) {1.1 {
    # Includes items to archive the active window or its folder. This is for the contextual menu.
    set cmToken [contextualMenu::declare submenu "compress " compress::menuProc 0]
	menuRef set $cmToken -updateProc compress::updateCompressCM
	unset cmToken
    # Insert a very basic "File > File Utilities > Archive File" command.
	menuItem insert $menu::core(FileUtilities) end "Archive File…"
}}
set preinit(wwwDictionary) {1.3 {
    # Contextual Menu module.  Placed here so that it can be turned on even
    # if this package isn't formally activated.

    # Includes items to look up words in a variety of web-based dictionaries,
    # displaying them either in «ALPHA» or your local browser as specified by
    # your "View Html" preference
	namespace eval dictionary::www {
		set cmToken [::contextualMenu::declare submenu "wwwDictionary " dictionary::www::menuProc 0]
		menuRef set $cmToken -updateProc dictionary::www::updateCM
		unset cmToken
	}
}}
set preinit(teXServices) {1.2 {
    # Preinit script: source this file so that all TeX Services will
    # be properly registered.
    texServices.tcl
}}
set preinit(macMenu) {4.0 {
	# Includes items to manipulate files, including moving, copying,
	# locking, trashing, renaming (etc.)
	set cmToken [contextualMenu::declare submenu "macFileManips" mac::cmFileManipsProc 0]
	mac::buildFileManipsCM $cmToken
	set "::index::consoles(Mac Shell)" mac::macShell
}}
set preinit(mailerAppleMail) {1.0 {
    namespace eval Mail {
	variable handlers
	set "handlers(Apple Mail)" "Mail::apple"
    }
}}
set preinit(recentFolders) {1.9 {
    # This should be a one-time check to make sure that the renamed feature 
    # (previously "recentDirsMenu") is properly included in the list.  We'll 
    # remove this after AlphaTcl 8.1 has been released.
    if {[info exists global::features]  && ([set idx [lsearch $global::features "recentDirsMenu"]] > -1)} {
        set global::features  [lreplace $global::features $idx $idx "recentFolders"]
	prefs::modified global::features
    }
    unset -nocomplain idx
}}
set preinit(vcSvn) {0.2 {
    hook::register vcsSupportPackages {vcs::svnSupport}
    vcs::register Svn
    ;proc vcs::svnSupport {args} {
		hook::register preOpeningHook svn::preOpeningHook
		hook::register activateHook svn::activateHook
		hook::register deactivateHook svn::removeMenu
		hook::register closeHook svn::properClose svn
		# Create a "minor mode" for the windows under subversion control
		alpha::minormode "svn" +bindtags "svn" +hookmodes "svn" +featuremodes "svn"
    }
}}
set preinit(specialCharacters) {1.5 {
    # Contextual Menu module.
    # Declare an update proc for the Special Characters menu -- the main
    # difference is determining where the character should be added wrt
    # cursor, highlighted selection, and the CM click position.
    set cmToken [contextualMenu::declare submenu "specialCharacters" specialChars::cmenuProc 0]
	menuRef set $cmToken -updateProc specialChars::updateCM
	unset cmToken
}}
set preinit(vcFossil) {0.1 {
    hook::register vcsSupportPackages {vcs::fossilSupport}
    vcs::register Fossil
    ;proc vcs::fossilSupport {args} {
		hook::register preOpeningHook fossil::preOpeningHook
		hook::register activateHook fossil::activateHook
		hook::register closeHook fossil::properClose fossil
    }
	# Create a "minor mode" for the windows under fossil control
	alpha::minormode "fossil" +bindtags "fossil" +hookmodes "fossil" +featuremodes "fossil"
}}
set preinit(notes) {1.3 {
    # Contextual Menu module.
	namespace eval notes {
		variable cmToken
		# This call will eventually create the menu
		set cmToken [contextualMenu::declare submenu "notes" notes::menuProc 0]
		menuRef set $cmToken -updateProc notes::updateMenu
	}
}}
set preinit(wwwMenu) {3.1 {
    # 'Pre-init' script, called when Alpha is first started.  We use the
    # [array set] syntax here to ensure that any [trace]s that are applied to
    # the arrays, as in
    # 
    #     trace add variable newDocTypes {array write unset}
    # 
    # are properly taken into account.
    array set newDocTypes [list "New WWW Browser"           {WWW::renderUrl}]
    array set htmlViewer  [list "Text-only parser" 	    {WWW::renderFile}]
    array set urlViewer   [list "Internal text-only viewer" {WWW::renderUrl}]
}}
set preinit(fileServices) {1.0 {
    # Preinit script: source this file so that all services defined by
    # this package will be properly registered.  (We could define all of
    # these here in this script if we wanted to avoid sourcing this file.)
    fileServices.tcl
}}
set preinit(bugsTracker) {1.1 {
	alphatrac::initialize
}}
set preinit(vcGit) {0.1.1 {
    hook::register vcsSupportPackages {vcs::gitSupport}
    vcs::register Git
    ;proc vcs::gitSupport {args} {
		hook::register preOpeningHook git::preOpeningHook
		hook::register activateHook git::activateHook
		hook::register closeHook git::properClose git
    }
	# Create a "minor mode" for the windows under git control
	alpha::minormode "git" +bindtags "git" +hookmodes "git" +featuremodes "git"
}}
set preinit(upgradeAlpha) {0.3 {
	upgradeAlpha.tcl
	foreach serv [list UpdateAlphaTcl UpdateAlphaSources] {
		if {![string length [xserv::getCurrentImplementationsFor $serv]]} {
			# Make sure that this doesn't throw an error.
			catch {xserv::chooseImplementationFor $serv [list -name "from 'Terminal'"]}
		}
	} 
}}
set preinit(appIdentifiers) {1.0 {
    # Preinit script
    appIDs.tcl
}}
